package com.aaa.qy127.dao;


import com.aaa.qy127.entity.Book;

import java.util.List;
import java.util.Map;

public interface BookDao {

    /**
     * 查询全部
     * @return
     */
    List<Map<String,Object>> getAllBook(Book book);

    /**
     * 查询总的数据数量
     * @return
     */
    int getcount(Book book);

    /**
     * 插入一条书籍的信息
     * @param book
     * @return
     */
    int insertOneBook(Book book);

    /**
     * 按照bookid 修改 book 表中的 url
     * @param book
     */
    void updateUrlByBookId(Book book);

    /**
     * 通过bookid 去修改status（状态的值）
     * 决定上架 和  下架
     * @param bookid
     * @param status
     * @return
     */
    int updataStatus(Integer bookid, Integer status);

    /**
     * 通过bookid 修改 数据
     * @param book
     * @return
     */
    int updateBook(Book book);

    /**
     * 通过 书名 书的id  书的出版社 查询
     * @param book
     * @return
     */
    List<Map<String,Object>> getOneBookByBookidAndPublisherAndBookname(Book book);

    /**
     * 根据bookid 查询 该书籍 的图片信息
     * @return
     */
    List<Map<String,Object>> getBookUrlBybookid(Book book);

    /**
     * 根据bookid 删除 该用户的 所有图片信息
     * @param book
     * @return
     */
    int deleteBookUrlByBookid(Book book);

    /**
     * 按照书名查询
     * @param book
     * @return
     */
    List<Map<String,Object>> getOneBook(Book book);

    /**
     * 根据 出版社查询 书籍信息
     * @param book
     * @return
     */
    List<Map<String,Object>> getBookByPublisher(Book book);

    /**
     * 通过书籍的 id 查询 书籍的 数量
     * @param bookid
     * @return
     */
    int getCountByBookId(Integer bookid);

    /**
     * 向 book_tp表中 添加 长传的 图片的地址
     * @param book
     */
    void insertAllUrl(Book book);

    /**
     * 通过 bookid 和 t_book_tp中 的status 查询 图片路径
     * @param book
     * @return
     */
    String getOneBookUrl(Book book);

    /**
     * 通过booid 查询出 该书籍的所有的 图片
     * @param bookid
     * @return
     */
    List<Map<String,Object>> getImgByBookId(String bookid);

    /**
     * 通过 url 删除 书籍图片
     * @param url
     * @return
     */
    int deleteBookUrl(String url);

    /**
     * 通过 url 修改 book 表中的url
     * @param url
     */
    void updateBookUrlByUrl(String url);

    /**
     * 通过url 查询 book表中的 url
     * @param url
     * @return
     */
    String getOneBookUrlByurl(String url);

    /**
     * 通过 原来的图片的路径查询 book表中的图片路径
     * @param urlOld
     * @return
     */
    String getOneBookUrlByUrlOld(String urlOld);

    /**
     * 通过老的 照片的路径 修改 book表中新的照片的路径
     * @param urlNew
     * @param urlOld
     * @return
     */
    int updateBookUrlByUrlOldAndUrlNew(String urlNew,String urlOld);

    /**
     * 通过老的 照片的路径 修改 book_tp表中新的照片的路径
     * @param urlNew
     * @param urlOld
     * @return
     */
    int updateBookTpUrlByUrlOldAndNew(String urlNew,String urlOld);

    /**
     * 查询所有的书籍的名字 和 id 通过 typeid 查询 书籍的名字 和 id
     * @return
     */
    List<Map<String,Object>> selectBookNameAndBookid(String typeid);

    /**
     * 通过 bookid 查询 这个书籍的 出版社
     * @param bookid
     * @return
     */
    List<Map<String,Object>> selectPublisherAndBookid(String bookid);

    /**
     * 获取到 所有的 书籍的信息
     * @return
     */
    List<Map<String,Object>> getAllBook();

    /**
     * 通过booid 获取到 这一条信息
     * @param bookid
     * @return
     */
    List<Map<String,Object>> showBookByBookid(String bookid);

    /**
     * 通过 bookid 获取 该 书籍的 所有的图片
     * @param bookid
     * @return
     */
    List<Map<String,Object>> showBookUrlByBookid(String bookid);

    /**
     * 通过 typid 查询出 该 类型的 书籍 的 信息
     * @param typeid
     * @return
     */
    List<Map<String,Object>> showBookBytypeid(String typeid);

    /**
     * 按照 bookname 模糊查询
     * @param bookname
     */
    List<Map<String,Object>> selectSomeBookBybookname(String bookname);
}
